\chapter{Introdução}
Neste capítulo apresentamos a sintaxe básica do \textsf{OPL}.

\section{Parâmetros}
A grande maioria dos problemas são modelados no $\mathbb{R}^n$, $n \in \mathbb{Z}_+$, e para declarar o valor de $n$ utilizamos a seguinte sintaxe:
\begin{code}
int n = <valor de n>;
\end{code}
Qualquer outra constante pode ser declarada de maneira similar seguinto a sintaxe:
\begin{code}
<tipo> <nome da variável> = <valor da variável>;
\end{code}
onde \lcode{\textless tipo\textgreater} \ é um dos seguintes tipos primitivos: \lcode{int}, \lcode{double}.

Em muitos problemas é comum existir um ou mais conjuntos. A declaração de um conjunto pode ser feita de várias maneiras dependendo dos elementos do conjunto. A seguir apresentamos alguns exemplos de conjuntos:
\begin{enumerate}
 \item conjunto de números:
\begin{code}
{int} I = {1, 2, 3};
\end{code}
 \item conjunto de números em sequencia:
\begin{code}
{int} I = {1:3};
\end{code}
 \item conjunto de strings:
\begin{code}
{string} I = {'um', 'dois', 'três'};
\end{code}
\end{enumerate}

Uma vez definido um conjunto podemos utilizá-lo para definir um vetor utilizando a seguinte sintaxe:
\begin{code}
int A[I] = [5, 10, 15];
\end{code}

\section{Parâmetros em arquivo separado}

\section{Variáveis}
Uma parte muito importante de qualquer modelo são as variávies utilizadas. A declaração de uma variável utiliza a seguinte sintaxe:
\begin{code}
dvar <tipo> <nome da variável>;
\end{code}
Também é possível declarar um vetor de variáveis utilizando a seguinte sintaxe:
\begin{code}
dvar <tipo> <nome da variável>[<conjunto>];
\end{code}

\section{Operações}
As operações aritméticas permitidas são:

\section{Função Objetivo}
Caso o problema seja de maximização declaramos a função objetivo seguindo a sintaxe:
\begin{code}
maximize <operações aritméticas>;
\end{code}
Se o problema for de minimização trocamos \lcode{maximize} por \lcode{minimize}.

\section{Restrições}
Para as restrições utilizamos a seguinte sintaxe:
\begin{code}
subsect to {
  <desigualdade 1>;
  <desigualdade 2>;
  <...>;
}
\end{code}